 package constants;

 import client.inventory.Equip;
 import client.inventory.MapleInventoryType;
 import client.inventory.MapleWeaponType;
 import configs.CSInfoConfig;
 import configs.ServerConfig;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
 import server.MapleItemInformationProvider;
 import server.StructItemOption;
 import tools.Pair;









 public class ItemConstants
 {
/*   28 */   public static final int[] rankC = new int[] { 70000000, 70000001, 70000002, 70000003, 70000004, 70000005, 70000006, 70000007, 70000008, 70000009, 70000010, 70000011, 70000012, 70000013 };
/*   29 */   public static final int[] rankB = new int[] { 70000014, 70000015, 70000017, 70000018, 70000021, 70000022, 70000023, 70000024, 70000025, 70000026 };
/*   30 */   public static final int[] rankA = new int[] { 70000027, 70000028, 70000029, 70000030, 70000031, 70000032, 70000033, 70000034, 70000035, 70000036 };
/*   31 */   public static final int[] rankS = new int[] { 70000048, 70000049, 70000050, 70000051, 70000052, 70000053, 70000054, 70000055, 70000056, 70000057, 70000058, 70000059, 70000060, 70000061, 70000062 };
/*   32 */   public static final int[] circulators = new int[] { 2700000, 2700100, 2700200, 2700300, 2700400, 2700500, 2700600, 2700700, 2700800, 2700900, 2701000 };
/*   33 */   public static final int[] rankBlock = new int[] { 70000016, 70000037, 70000038, 70000039, 70000040, 70000041, 70000042, 70000043, 70000044, 70000045, 70000046, 70000047 };














/*   48 */   public static final int[] 灵魂结晶 = new int[] { 2591010, 2591011, 2591012, 2591013, 2591014, 2591015, 2591016, 2591017, 2591018, 2591019, 2591020, 2591021, 2591022, 2591023, 2591024, 2591025, 2591026, 2591027, 2591028, 2591029, 2591030, 2591031, 2591032, 2591033, 2591034, 2591035, 2591036, 2591037, 2591038, 2591039, 2591040, 2591041, 2591042, 2591043, 2591044, 2591045, 2591046, 2591047, 2591048, 2591049, 2591050, 2591051, 2591052, 2591053, 2591054, 2591055, 2591056, 2591057, 2591058, 2591059, 2591060, 2591061, 2591062, 2591063, 2591064, 2591065, 2591066, 2591067, 2591068, 2591069, 2591070, 2591071, 2591072, 2591073, 2591074, 2591075, 2591076, 2591077, 2591078, 2591079, 2591080, 2591081, 2591082, 2591085, 2591086, 2591087, 2591088, 2591089, 2591090, 2591091, 2591092, 2591093, 2591094, 2591095, 2591096, 2591097, 2591098, 2591099, 2591100, 2591101, 2591102, 2591103, 2591104, 2591105, 2591106, 2591107, 2591108, 2591109, 2591110, 2591111, 2591112, 2591113, 2591114, 2591115, 2591116, 2591117, 2591118, 2591119, 2591120, 2591121, 2591122, 2591123, 2591124, 2591125, 2591126, 2591127, 2591128, 2591129, 2591130, 2591131, 2591132, 2591133, 2591134, 2591135, 2591136, 2591137, 2591138, 2591139, 2591140, 2591141, 2591142, 2591143, 2591144, 2591145, 2591146, 2591147, 2591148, 2591149, 2591150, 2591151, 2591152, 2591153, 2591154, 2591155, 2591156, 2591157, 2591158, 2591159, 2591160, 2591161, 2591162, 2591163, 2591164, 2591165, 2591166, 2591167, 2591168, 2591169, 2591170, 2591171, 2591172, 2591173, 2591174, 2591175, 2591176, 2591177, 2591178, 2591179, 2591180, 2591181, 2591182, 2591183, 2591184, 2591185, 2591186, 2591187, 2591188, 2591189, 2591190, 2591191, 2591192, 2591193, 2591194, 2591195, 2591196, 2591197, 2591198, 2591199, 2591200, 2591201, 2591202, 2591203, 2591204, 2591205, 2591206, 2591207, 2591208, 2591209, 2591210, 2591211, 2591212, 2591213, 2591214, 2591215, 2591216, 2591217, 2591218, 2591219, 2591220, 2591221, 2591222, 2591223, 2591224, 2591225, 2591226, 2591227, 2591228, 2591229, 2591230, 2591231, 2591232, 2591233, 2591234, 2591235, 2591236, 2591237, 2591238, 2591239, 2591240, 2591241, 2591242, 2591243, 2591244, 2591245, 2591246, 2591247, 2591248, 2591249, 2591250, 2591251, 2591252, 2591253, 2591254, 2591255, 2591256, 2591257, 2591258, 2591259, 2591260, 2591261, 2591262, 2591263, 2591264, 2591265, 2591266, 2591267, 2591268, 2591269, 2591270, 2591271, 2591272, 2591273, 2591274, 2591275, 2591276, 2591277, 2591278, 2591279, 2591288, 2591289, 2591290, 2591291, 2591292, 2591293, 2591294, 2591295, 2591296, 2591297, 2591298, 2591299, 2591300, 2591301, 2591302, 2591303, 2591304, 2591305, 2591306, 2591307, 2591308, 2591309, 2591310, 2591311, 2591312, 2591313, 2591314, 2591315, 2591316, 2591317, 2591318, 2591319, 2591320, 2591321, 2591322, 2591323, 2591324, 2591325, 2591326, 2591327, 2591328, 2591329, 2591330, 2591331, 2591332, 2591333, 2591334, 2591335, 2591336, 2591337, 2591338, 2591339, 2591340, 2591341, 2591342, 2591343, 2591344, 2591345, 2591346, 2591347, 2591348, 2591349, 2591350, 2591351, 2591352, 2591353, 2591354, 2591355, 2591356, 2591357, 2591358, 2591359, 2591360, 2591361, 2591362, 2591363, 2591364, 2591365, 2591366, 2591367, 2591368, 2591369, 2591370, 2591371, 2591372, 2591373, 2591374, 2591375, 2591376, 2591377, 2591378, 2591379, 2591380, 2591381 };
/*   49 */   public static final short[] 灵魂结晶技能 = new short[] { 177, 102, 103, 104, 131, 132, 201, 101, 102, 103, 104, 131, 132, 201, 105, 106, 107, 108, 133, 134, 202, 105, 106, 107, 108, 133, 134, 202, 109, 110, 111, 112, 135, 136, 203, 113, 114, 115, 116, 204, 151, 152, 137, 403, 603, 121, 122, 123, 124, 206, 155, 156, 139, 403, 603, 117, 118, 119, 120, 207, 153, 154, 138, 403, 603, 167, 168, 169, 170, 208, 171, 172, 177, 0, 0, 0, 0, 101, 102, 103, 104, 131, 132, 201, 101, 102, 103, 104, 131, 132, 201, 105, 106, 107, 108, 133, 134, 202, 105, 106, 107, 108, 133, 134, 202, 109, 110, 111, 112, 135, 136, 203, 113, 114, 115, 116, 204, 151, 152, 137, 117, 118, 119, 120, 207, 153, 154, 138, 121, 122, 123, 124, 206, 155, 156, 139, 101, 102, 103, 104, 131, 132, 201, 163, 164, 165, 166, 210, 151, 152, 175, 0, 101, 102, 103, 104, 131, 132, 201, 163, 164, 165, 166, 210, 151, 152, 175, 167, 168, 169, 170, 208, 171, 172, 177, 179, 180, 181, 182, 183, 184, 201, 185, 186, 187, 188, 205, 153, 154, 189, 0, 179, 180, 181, 182, 183, 184, 201, 185, 186, 187, 188, 205, 153, 154, 189, 109, 110, 111, 112, 135, 136, 203, 117, 118, 119, 120, 207, 153, 154, 138, 0, 109, 110, 111, 112, 135, 136, 203, 117, 118, 119, 120, 205, 153, 154, 138, 101, 102, 103, 104, 131, 132, 201, 167, 168, 169, 170, 208, 173, 172, 177, 0, 101, 102, 103, 104, 131, 132, 201, 167, 168, 169, 170, 208, 173, 172, 177, 167, 168, 169, 170, 208, 171, 172, 177, 0, 121, 186, 187, 188, 205, 153, 154, 189, 0, 185, 186, 187, 188, 207, 153, 154, 189, 0, 185, 186, 187, 188, 205, 153, 154, 189, 0, 185, 186, 187, 188, 207, 153, 154, 189, 0, 185, 186, 187, 188, 206, 153, 154, 189, 0, 121, 186, 187, 188, 205, 153, 154, 189, 185, 186, 187, 188, 205, 153, 154, 189, 185, 186, 187, 188, 205, 153, 154, 189, 185, 186, 187, 188, 207, 153, 154, 189, 185, 186, 187, 188, 206, 153, 154, 189 };
/*   50 */   public static final int[] 航海材料 = new int[] { 3100000, 3100001, 3100002, 3100003, 3100004, 3100005, 3100006, 3100007, 3100008, 3100010, 3100011 };


   public static int[] fa() {
/*   54 */     return new int[] { 2510538, 2510539, 2510540, 2510541, 2510542, 2510543, 2510544, 2510545, 2510546, 2510547, 2510548, 2510549, 2510550, 2510551, 2510552, 2510553, 2510554, 2510555, 2510556, 2510557, 2510558, 2510559, 2510560, 2510561, 2510562, 2510563, 2510564, 2510565, 2510566, 2510567, 2510621, 2510255, 2510256, 2510257, 2510258, 2510259, 2510528, 2510529, 2510530, 2510531, 2510532, 2510533, 2510534 };
   }


   public static int[] fb() {
/*   59 */     return new int[] { 2510483, 2510484, 2510485, 2510486, 2510487, 2510488, 2510489, 2510490, 2510491, 2510492, 2510493, 2510494, 2510495, 2510496, 2510497, 2510498, 2510499, 2510500, 2510501, 2510502, 2510503, 2510504, 2510505, 2510506, 2510507, 2510508, 2510509, 2510510, 2510511, 2510512, 2510513, 2510514, 2510515, 2510516, 2510517, 2510518, 2510519, 2510520, 2510521, 2510522, 2510523, 2510524, 2510525, 2510526, 2510527 };
   }


   public static int[] fc() {
/*   64 */     return new int[] { 4021000, 4021001, 4021002, 4021003, 4021004, 4021005, 4021006, 4021007, 4021008, 4021009, 4021012, 4021010, 4021013, 4021014, 4021015, 4021016, 4021019, 4021020, 4021021, 4021022, 4021031, 4021032, 4021033, 4021034, 4021035, 4021036, 4021037, 4021038, 4021039, 4021040, 4021041, 4021042, 4023023, 4023024, 4023025, 4023026, 4023021, 4023022 };
   }


/*   68 */   public static final int[] sealedEquip = new int[] { 1032224, 1122269, 1132247, 1152160, 1542072, 1552072, 1582025, 1262029, 1272028, 1282028, 1592032, 1292035, 1012438, 1022211, 1432187, 1442242, 1452226, 1462213, 1472235, 1482189, 1492199, 1522113, 1532118, 1252033, 1312173, 1322223, 1332247, 1342090, 1362109, 1372195, 1382231, 1402220, 1412152, 1422158, 1003976, 1102623, 1082556, 1052669, 1072870, 1212089, 1222084, 1232084, 1242090, 1302297 };














































   public static List<Integer> getNewGoldenMapleItem() {
/*  116 */     return Arrays.asList(new Integer[] { Integer.valueOf(1462116), Integer.valueOf(1342039), Integer.valueOf(1402109), Integer.valueOf(1472139), Integer.valueOf(1332147), Integer.valueOf(1322105), Integer.valueOf(1442135), Integer.valueOf(1452128), Integer.valueOf(1312071), Integer.valueOf(1382123), Integer.valueOf(1492100), Integer.valueOf(1372099), Integer.valueOf(1432098), Integer.valueOf(1422072), Integer.valueOf(1302172), Integer.valueOf(1482101), Integer.valueOf(1412070) });
   }

   public static List<Integer> getPlatinumItem() {
/*  120 */     return Arrays.asList(new Integer[] { Integer.valueOf(1003243), Integer.valueOf(1052358), Integer.valueOf(1072522), Integer.valueOf(1082315), Integer.valueOf(1102295), Integer.valueOf(1132093), Integer.valueOf(1152061), Integer.valueOf(1332145), Integer.valueOf(1402107), Integer.valueOf(1442133), Integer.valueOf(1462114), Integer.valueOf(1472137), Integer.valueOf(1532070), Integer.valueOf(1522066), Integer.valueOf(1452126), Integer.valueOf(1312069), Integer.valueOf(1382121), Integer.valueOf(1492098), Integer.valueOf(1372097), Integer.valueOf(1362058), Integer.valueOf(1432096), Integer.valueOf(1422070), Integer.valueOf(1302170), Integer.valueOf(1482099), Integer.valueOf(1412068) });
   }

   public static List<Integer> getZijinItem() {
/*  124 */     return Arrays.asList(new Integer[] { Integer.valueOf(1462159), Integer.valueOf(1462156), Integer.valueOf(1402145), Integer.valueOf(1402151), Integer.valueOf(1052461), Integer.valueOf(1052457), Integer.valueOf(1532073), Integer.valueOf(1532074), Integer.valueOf(1472177), Integer.valueOf(1472179), Integer.valueOf(1332186), Integer.valueOf(1332193), Integer.valueOf(1322154), Integer.valueOf(1322162), Integer.valueOf(1442173), Integer.valueOf(1442182), Integer.valueOf(1522068), Integer.valueOf(1522071), Integer.valueOf(1452165), Integer.valueOf(1312114), Integer.valueOf(1312116), Integer.valueOf(1382160), Integer.valueOf(1132154), Integer.valueOf(1132151), Integer.valueOf(1072666), Integer.valueOf(1072660), Integer.valueOf(1212069), Integer.valueOf(1212068), Integer.valueOf(1492152), Integer.valueOf(1492138), Integer.valueOf(1372139), Integer.valueOf(1372131), Integer.valueOf(1222063), Integer.valueOf(1222064), Integer.valueOf(1082433), Integer.valueOf(1082430), Integer.valueOf(1362060), Integer.valueOf(1362067), Integer.valueOf(1432138), Integer.valueOf(1432135), Integer.valueOf(1152088), Integer.valueOf(1152089), Integer.valueOf(1003529), Integer.valueOf(1003552), Integer.valueOf(1422107), Integer.valueOf(1422105), Integer.valueOf(1232070), Integer.valueOf(1232063), Integer.valueOf(1302227), Integer.valueOf(1302212), Integer.valueOf(1113036), Integer.valueOf(1113035), Integer.valueOf(1112743), Integer.valueOf(1112742), Integer.valueOf(1482140), Integer.valueOf(1482138), Integer.valueOf(1242048), Integer.valueOf(1242075), Integer.valueOf(1412102), Integer.valueOf(1412014), Integer.valueOf(1102394), Integer.valueOf(1102441) });
   }

   public static List<Integer> get11thItem() {
/*  128 */     return Arrays.asList(new Integer[] { Integer.valueOf(1004172), Integer.valueOf(1012471), Integer.valueOf(1052758), Integer.valueOf(1102691), Integer.valueOf(1122280), Integer.valueOf(1212095), Integer.valueOf(1222089), Integer.valueOf(1232089), Integer.valueOf(1242095), Integer.valueOf(1302304), Integer.valueOf(1312179), Integer.valueOf(1322230), Integer.valueOf(1332254), Integer.valueOf(1342094), Integer.valueOf(1362115), Integer.valueOf(1372201), Integer.valueOf(1382239), Integer.valueOf(1402229), Integer.valueOf(1412158), Integer.valueOf(1422165), Integer.valueOf(1432194), Integer.valueOf(1442248), Integer.valueOf(1452232), Integer.valueOf(1462219), Integer.valueOf(1472241), Integer.valueOf(1482196), Integer.valueOf(1492205), Integer.valueOf(1522118), Integer.valueOf(1532124) });
   }

   public static boolean isHarvesting(int itemId) {
/*  132 */     return (itemId >= 1500000 && itemId < 1520000);
   }

   public static boolean is飞镖道具(int itemId) {
/*  136 */     return (itemId / 10000 == 207);
   }

   public static boolean is子弹道具(int itemId) {
/*  140 */     return (itemId / 10000 == 233);
   }

   public static boolean isRechargable(int itemId) {
/*  144 */     return (is飞镖道具(itemId) || is子弹道具(itemId));
   }

   public static boolean isOverall(int itemId) {
/*  148 */     return (itemId / 10000 == 105);
   }

   public static boolean isPet(int itemId) {
/*  152 */     return (itemId / 10000 == 500);
   }

   public static int getFamiliarByItemID(int itemId) {
/*  156 */     return MapleItemInformationProvider.getInstance().getFamiliarID(itemId);
   }

   public static boolean is弩矢道具(int itemId) {
/*  160 */     return (itemId >= 2061000 && itemId < 2062000);
   }

   public static boolean is弓矢道具(int itemId) {
/*  164 */     return (itemId >= 2060000 && itemId < 2061000);
   }

   public static boolean isMagicWeapon(int itemId) {
/*  168 */     int type = itemId / 10000;
/*  169 */     return (type == 137 || type == 138 || (type == 121 && !is调谐器(itemId)));
   }











   public static boolean isWeapon(int itemid) {
/*  183 */     return (is双头杖(itemid) || is手铳(itemid) || is恶魔剑(itemid) || is能量剑(itemid) || is魔法棒(itemid) || isESP限制器(itemid) || is单手剑(itemid) || is单手斧(itemid) || is单手钝器(itemid) || is短刀(itemid) || is手杖(itemid) || is短杖(itemid) || is长杖(itemid) || is双手剑(itemid) || is双手斧(itemid) || is双手钝器(itemid) || is长枪(itemid) || is长矛(itemid) || is弓(itemid) || is弩(itemid) || is拳套(itemid) || is指节(itemid) || is短枪(itemid) || is双弩枪(itemid) || is火炮(itemid) || is太刀(itemid) || is扇子(itemid) || is锋利之影(itemid) || is阔影剑(itemid) || is爆破拳套(itemid) || is玛拉德远古弓(itemid) || is虎影扇(itemid) || is调谐器(itemid));
   }

   public static MapleInventoryType getInventoryType(int itemId) {
/*  187 */     byte type = (byte)(itemId / 1000000);
/*  188 */     if ((type < 1 || type > 5) && type != 9 && type != 36) {
/*  189 */       return MapleInventoryType.UNDEFINED;
     }
/*  191 */     return MapleInventoryType.getByType(type);
   }

   public static int getMaxEnhance(int itemid) {
/*  195 */     MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
/*  196 */     int reqLevel = ii.getReqLevel(itemid);
/*  197 */     boolean superiorEquip = ii.isSuperiorEquip(itemid);
/*  198 */     if (reqLevel >= 0 && reqLevel <= 94) {
/*  199 */       return superiorEquip ? 3 : 5;
     }
/*  201 */     if (reqLevel > 94 && reqLevel <= 107) {
/*  202 */       return superiorEquip ? 5 : 8;
     }
/*  204 */     if (reqLevel > 107 && reqLevel <= 117) {
/*  205 */       return superiorEquip ? 8 : 10;
     }
/*  207 */     if (reqLevel > 117 && reqLevel <= 127) {
/*  208 */       return superiorEquip ? 10 : 15;
     }
/*  210 */     if (reqLevel > 127 && reqLevel <= 137) {
/*  211 */       return superiorEquip ? 12 : 20;
     }
/*  213 */     if (reqLevel > 137 && reqLevel <= 147) {
/*  214 */       return superiorEquip ? 15 : 25;
     }
/*  216 */     if (reqLevel > 147) {
/*  217 */       return superiorEquip ? 15 : 25;
     }
/*  219 */     return 0;
   }

   public static MapleWeaponType getWeaponType(int itemId) {
/*  223 */     int cat = itemId / 10000;
/*  224 */     cat %= 100;
/*  225 */     switch (cat) {
       case 21:
/*  227 */         return MapleWeaponType.双头杖;
       case 22:
/*  229 */         return MapleWeaponType.灵魂手铳;
       case 23:
/*  231 */         return MapleWeaponType.亡命剑;
       case 24:
/*  233 */         return MapleWeaponType.能量剑;
       case 25:
/*  235 */         return MapleWeaponType.驯兽魔法棒;
       case 26:
/*  237 */         return MapleWeaponType.ESP限制器;
       case 27:
/*  239 */         return MapleWeaponType.锁链;
       case 29:
/*  241 */         return MapleWeaponType.扇;
       case 30:
/*  243 */         return MapleWeaponType.单手剑;
       case 31:
/*  245 */         return MapleWeaponType.单手斧;
       case 32:
/*  247 */         return MapleWeaponType.单手钝器;
       case 33:
/*  249 */         return MapleWeaponType.短刀;
       case 34:
/*  251 */         return MapleWeaponType.双刀副手;
       case 35:
/*  253 */         return MapleWeaponType.特殊副手;
       case 36:
/*  255 */         return MapleWeaponType.手杖;
       case 37:
/*  257 */         return MapleWeaponType.短杖;
       case 38:
/*  259 */         return MapleWeaponType.长杖;
       case 40:
/*  261 */         return MapleWeaponType.双手剑;
       case 41:
/*  263 */         return MapleWeaponType.双手斧;
       case 42:
/*  265 */         return MapleWeaponType.双手钝器;
       case 43:
/*  267 */         return MapleWeaponType.枪;
       case 44:
/*  269 */         return MapleWeaponType.矛;
       case 45:
/*  271 */         return MapleWeaponType.弓;
       case 46:
/*  273 */         return MapleWeaponType.弩;
       case 47:
/*  275 */         return MapleWeaponType.拳套;
       case 48:
/*  277 */         return MapleWeaponType.指节;
       case 49:
/*  279 */         return MapleWeaponType.短枪;
       case 50:
/*  281 */         return MapleWeaponType.采集工具50;
       case 51:
/*  283 */         return MapleWeaponType.采集工具51;
       case 52:
/*  285 */         return MapleWeaponType.双弩枪;
       case 53:
/*  287 */         return MapleWeaponType.手持火炮;
       case 54:
/*  289 */         return MapleWeaponType.武士刀;
       case 56:
/*  291 */         return MapleWeaponType.大剑;
       case 57:
/*  293 */         return MapleWeaponType.太刀;
       case 58:
/*  295 */         return MapleWeaponType.机甲手枪;
       case 59:
/*  297 */         return MapleWeaponType.调谐器;
     }

/*  300 */     return MapleWeaponType.没有武器;
   }

   public static boolean isCap(int itemId) {
/*  304 */     int cat = itemId / 10000;
/*  305 */     cat %= 100;
/*  306 */     return (cat == 0);
   }

   public static boolean is脸饰(int itemId) {
/*  310 */     int cat = itemId / 10000;
/*  311 */     cat %= 100;
/*  312 */     return (cat == 1);
   }

   public static boolean is眼饰(int itemId) {
/*  316 */     int cat = itemId / 10000;
/*  317 */     cat %= 100;
/*  318 */     return (cat == 2);
   }

   public static boolean is耳环(int itemId) {
/*  322 */     int cat = itemId / 10000;
/*  323 */     cat %= 100;
/*  324 */     return (cat == 3);
   }

   public static boolean isCoat(int itemId) {
/*  328 */     int cat = itemId / 10000;
/*  329 */     cat %= 100;
/*  330 */     return (cat == 4);
   }

   public static boolean isLongcoat(int itemId) {
/*  334 */     int cat = itemId / 10000;
/*  335 */     cat %= 100;
/*  336 */     return (cat == 5);
   }

   public static boolean isPants(int itemId) {
/*  340 */     int cat = itemId / 10000;
/*  341 */     cat %= 100;
/*  342 */     return (cat == 6);
   }

   public static boolean isShoes(int itemId) {
/*  346 */     int cat = itemId / 10000;
/*  347 */     cat %= 100;
/*  348 */     return (cat == 7);
   }

   public static boolean isGlove(int itemId) {
/*  352 */     int cat = itemId / 10000;
/*  353 */     cat %= 100;
/*  354 */     return (cat == 8);
   }

   public static boolean isShield(int itemId) {
/*  358 */     int cat = itemId / 10000;
/*  359 */     cat %= 100;
/*  360 */     return (cat == 9);
   }

   public static boolean isCape(int itemId) {
/*  364 */     int cat = itemId / 10000;
/*  365 */     cat %= 100;
/*  366 */     return (cat == 10);
   }

   public static boolean is戒指(int itemId) {
/*  370 */     int cat = itemId / 10000;
/*  371 */     cat %= 100;
/*  372 */     return (cat == 11);
   }

   public static boolean is项链(int itemId) {
/*  376 */     int cat = itemId / 10000;
/*  377 */     cat %= 100;
/*  378 */     return (cat == 12);
   }

   public static boolean is腰带(int itemId) {
/*  382 */     int cat = itemId / 10000;
/*  383 */     cat %= 100;
/*  384 */     return (cat == 13);
   }

   public static boolean is勋章(int itemId) {
/*  388 */     int cat = itemId / 10000;
/*  389 */     cat %= 100;
/*  390 */     return (cat == 14);
   }

   public static boolean isShoulders(int itemId) {
/*  394 */     int cat = itemId / 10000;
/*  395 */     cat %= 100;
/*  396 */     return (cat == 15);
   }

   public static boolean is口袋(int itemId) {
/*  400 */     int cat = itemId / 10000;
/*  401 */     cat %= 100;
/*  402 */     return (cat == 16);
   }

   public static boolean isArcaneForce(int itemId) {
/*  406 */     return (itemId / 10000 == 171);
   }

   public static boolean is徽章(int itemid) {
/*  410 */     return (itemid / 10000 == 118);
   }

   public static boolean is纹章(int itemid) {
/*  414 */     return (itemid / 10000 == 119);
   }

   public static boolean is图腾(int itemid) {
/*  418 */     return (itemid / 10000 == 120);
   }

   public static boolean is双头杖(int itemid) {
/*  422 */     return (itemid / 10000 == 121);
   }

   public static boolean is手铳(int itemid) {
/*  426 */     return (itemid / 10000 == 122);
   }

   public static boolean is恶魔剑(int itemid) {
/*  430 */     return (itemid / 10000 == 123);
   }

   public static boolean is能量剑(int itemid) {
/*  434 */     return (itemid / 10000 == 124);
   }

   public static boolean is魔法棒(int itemid) {
/*  438 */     return (itemid / 10000 == 125);
   }

   public static boolean isESP限制器(int itemid) {
/*  442 */     return (itemid / 10000 == 126);
   }

   public static boolean is单手剑(int itemid) {
/*  446 */     return (itemid / 10000 == 130);
   }

   public static boolean is单手斧(int itemid) {
/*  450 */     return (itemid / 10000 == 131);
   }

   public static boolean is单手钝器(int itemid) {
/*  454 */     return (itemid / 10000 == 132);
   }

   public static boolean is短刀(int itemid) {
/*  458 */     return (itemid / 10000 == 133);
   }

   public static boolean is双手刀(int itemid) {
/*  462 */     return (itemid / 10000 == 134);
   }

   public static boolean is手杖(int itemid) {
/*  466 */     return (itemid / 10000 == 136);
   }

   public static boolean is短杖(int itemid) {
/*  470 */     return (itemid / 10000 == 137);
   }

   public static boolean is长杖(int itemid) {
/*  474 */     return (itemid / 10000 == 138);
   }

   public static boolean is双手剑(int itemid) {
/*  478 */     return (itemid / 10000 == 140);
   }

   public static boolean is双手斧(int itemid) {
/*  482 */     return (itemid / 10000 == 141);
   }

   public static boolean is双手钝器(int itemid) {
/*  486 */     return (itemid / 10000 == 142);
   }

   public static boolean is长枪(int itemid) {
/*  490 */     return (itemid / 10000 == 143);
   }

   public static boolean is长矛(int itemid) {
/*  494 */     return (itemid / 10000 == 144);
   }

   public static boolean is弓(int itemid) {
/*  498 */     return (itemid / 10000 == 145);
   }

   public static boolean is弩(int itemid) {
/*  502 */     return (itemid / 10000 == 146);
   }

   public static boolean is拳套(int itemid) {
/*  506 */     return (itemid / 10000 == 147);
   }

   public static boolean is指节(int itemid) {
/*  510 */     return (itemid / 10000 == 148);
   }

   public static boolean is短枪(int itemid) {
/*  514 */     return (itemid / 10000 == 149);
   }

   public static boolean is双弩枪(int itemid) {
/*  518 */     return (itemid / 10000 == 152);
   }

   public static boolean is火炮(int itemid) {
/*  522 */     return (itemid / 10000 == 153);
   }

   public static boolean is太刀(int itemid) {
/*  526 */     return (itemid / 10000 == 154);
   }

   public static boolean is扇子(int itemid) {
/*  530 */     return (itemid / 10000 == 155);
   }

   public static boolean is虎影扇(int itemid) {
/*  534 */     return (itemid / 10000 == 129);
   }

   public static boolean is调谐器(int itemid) {
/*  538 */     return (itemid / 1000 == 1213);
   }

   public static boolean is进化装备(int itemid) {
/*  542 */     return (itemid / 100000 == 36);
   }







   public static boolean is阔影剑(int itemid) {
/*  552 */     return (itemid / 10000 == 156);
   }







   public static boolean is锋利之影(int itemid) {
/*  562 */     return (itemid / 10000 == 157);
   }

   public static boolean is玛拉德远古弓(int itemid) {
/*  566 */     return (itemid / 10000 == 159);
   }

   public static boolean is爆破拳套(int itemid) {
/*  570 */     return (itemid / 10000 == 158);
   }






   public static boolean isPetEquip(int itemid) {
/*  579 */     return (itemid / 10000 == 180);
   }

   public static boolean is饰品(int itemid) {
/*  583 */     return (is脸饰(itemid) || is眼饰(itemid) || is耳环(itemid) || is戒指(itemid) || is项链(itemid) || is腰带(itemid) || is勋章(itemid) || isShoulders(itemid) || is口袋(itemid) || is徽章(itemid) || is纹章(itemid) || is图腾(itemid));
   }

   public static boolean isEquip(int itemId) {
/*  587 */     return (itemId / 1000000 == 1);
   }

   public static boolean isCleanSlate(int itemId) {
/*  591 */     return (itemId / 100 == 20490);
   }

   public static boolean isAccessoryScroll(int itemId) {
/*  595 */     return (itemId / 100 == 20492);
   }

   public static boolean isChaosScroll(int itemId) {
/*  599 */     return ((itemId < 2049105 || itemId > 2049110) && itemId / 100 == 20491);
   }

   public static boolean isSealItem(int itemId) {
/*  603 */     return (itemId / 100 == 20495);
   }

   public static boolean isSealAddItem(int itemId) {
/*  607 */     return (itemId >= 2048200 && itemId <= 2048304);
   }

   public static boolean isDamageSkinItem(int itemId) {
/*  611 */     return MapleItemInformationProvider.getInstance().getDamageSkinBox().containsKey(Integer.valueOf(itemId));
   }

   public static boolean isLimitBreakScroll(int itemId) {
/*  615 */     return (itemId / 100 == 26140);
   }

   public static long getLimitBreakSurplus(int itemId) {
/*  619 */     long itemLimitBreak = MapleItemInformationProvider.getInstance().getLimitBreak(itemId);
/*  620 */     return ServerConfig.CHANNEL_PLAYER_LIMITBREAK - itemLimitBreak;
   }


   public static int getChaosNumber(int itemId) {
/*  625 */     switch (itemId) {
       case 2049116:
/*  627 */         return 10;
       case 2049119:
       case 2049132:
       case 2049133:
       case 2049134:
/*  632 */         return 8;
       case 2049135:
       case 2049136:
       case 2049137:
/*  636 */         return 7;
     }
/*  638 */     return 5;
   }


   public static boolean isChaosForGoodness(int itemId) {
/*  643 */     if (!isChaosScroll(itemId)) {
/*  644 */       return false;
     }
/*  646 */     switch (itemId) {
       case 2049122:
       case 2049124:
       case 2049127:
       case 2049129:
       case 2049130:
       case 2049131:
       case 2049135:
       case 2049136:
       case 2049137:
       case 2049140:
       case 2049155:
/*  658 */         return true;
     }
/*  660 */     return false;
   }

   public static boolean isEquipScroll(int scrollId) {
/*  664 */     return (scrollId / 100 == 20493);
   }

   public static boolean isAdvancedEquipScroll(int scrollId) {
/*  668 */     return (scrollId == 2049323);
   }




   public static boolean isResetScroll(int scrollId) {
/*  675 */     return (scrollId / 100 == 20496);
   }

   public static boolean isPotentialScroll(int scrollId) {
/*  679 */     return (scrollId / 100 == 20494 || scrollId / 100 == 20497 || scrollId == 5534000);
   }

   public static boolean isPotentialAddScroll(int scrollId) {
/*  683 */     switch (scrollId) {
       case 2048305:
       case 2048306:
       case 2048307:
       case 2048308:
       case 2048309:
       case 2048310:
       case 2048314:
       case 2048315:
/*  692 */         return true;
     }
/*  694 */     return false;
   }

   public static boolean is真觉醒冒险之心(int itemId) {
/*  698 */     switch (itemId) {
       case 1122122:
       case 1122123:
       case 1122124:
       case 1122125:
       case 1122126:
/*  704 */         return true;
     }
/*  706 */     return false;
   }

   public static boolean isSpecialScroll(int scrollId) {
/*  710 */     switch (scrollId) {
       case 2040727:
       case 2041058:
       case 2530000:
       case 2530001:
       case 2531000:
       case 5063100:
       case 5064000:
       case 5064003:
       case 5064100:
       case 5064200:
       case 5064300:
       case 5068100:
       case 5068200:
/*  724 */         return true;
     }
/*  726 */     return false;
   }

   public static boolean isAzwanScroll(int scrollId) {
/*  730 */     switch (scrollId) {




       case 2046060:
       case 2046061:
       case 2046062:
       case 2046063:
       case 2046064:
       case 2046065:
       case 2046066:
       case 2046067:
       case 2046068:
       case 2046069:
       case 2046141:
       case 2046142:
       case 2046143:
       case 2046144:
       case 2046145:
       case 2046519:
       case 2046520:
       case 2046521:
       case 2046522:
       case 2046523:
       case 2046524:
       case 2046525:
       case 2046526:
       case 2046527:
       case 2046528:
       case 2046529:
       case 2046530:
       case 2046701:
       case 2046702:
       case 2046703:
       case 2046704:
       case 2046705:
       case 2046706:
       case 2046707:
       case 2046708:
       case 2046709:
       case 2046710:
       case 2046711:
       case 2046712:
/*  774 */         return true;
     }
/*  776 */     return false;
   }

   public static boolean is回城卷轴(int id) {
/*  780 */     return (id >= 2030000 && id < 2040000);
   }

   public static boolean is升级卷轴(int id) {
/*  784 */     return (id >= 2040000 && id < 2050000);
   }

   public static boolean is短枪道具(int id) {
/*  788 */     return (id >= 1492000 && id < 1500000);
   }

   public static boolean isUse(int id) {
/*  792 */     return (id >= 2000000 && id < 3000000);
   }

   public static boolean is怪物召唤包(int id) {
/*  796 */     return (id / 10000 == 210);
   }

   public static boolean is怪物卡片(int id) {
/*  800 */     return (id / 10000 == 238);
   }

   public static boolean isBoss怪物卡(int id) {
/*  804 */     return (id / 1000 >= 2388);
   }

   public static int getCardShortId(int id) {
/*  808 */     return id % 10000;
   }

   public static boolean is强化宝石(int id) {
/*  812 */     return (id >= 4250000 && id <= 4251402);
   }

   public static boolean isUpgradeItemEx(int id) {
/*  816 */     return (id / 100 == 20487);
   }

   public static boolean isOtherGem(int id) {
/*  820 */     switch (id) {
       case 1032062:
       case 1142156:
       case 1142157:
       case 2040727:
       case 2041058:
       case 4001174:
       case 4001175:
       case 4001176:
       case 4001177:
       case 4001178:
       case 4001179:
       case 4001180:
       case 4001181:
       case 4001182:
       case 4001183:
       case 4001184:
       case 4001185:
       case 4001186:
       case 4031980:
       case 4032312:
       case 4032334:
/*  842 */         return true;
     }
/*  844 */     return false;
   }


   public static boolean isNoticeItem(int itemId) {
/*  849 */     switch (itemId) {













       case 1003172:
       case 1003173:
       case 1003174:
       case 1003175:
       case 1003176:
       case 1003976:
       case 1012438:
       case 1022211:
       case 1032224:
       case 1052314:
       case 1052315:
       case 1052316:
       case 1052317:
       case 1052318:
       case 1052669:
       case 1072485:
       case 1072486:
       case 1072487:
       case 1072488:
       case 1072489:
       case 1072870:
       case 1082295:
       case 1082296:
       case 1082297:
       case 1082298:
       case 1082299:
       case 1082556:
       case 1102275:
       case 1102276:
       case 1102277:
       case 1102278:
       case 1102279:
       case 1102623:
       case 1112793:
       case 1112915:
       case 1122269:
       case 1132247:
       case 1152108:
       case 1152110:
       case 1152111:
       case 1152112:
       case 1152113:
       case 1152160:
       case 1212014:
       case 1212089:
       case 1222014:
       case 1222084:
       case 1232014:
       case 1232084:
       case 1242014:
       case 1242042:
       case 1242090:
       case 1252033:
       case 1302152:
       case 1302297:
       case 1312065:
       case 1312173:
       case 1322096:
       case 1322223:
       case 1332130:
       case 1332247:
       case 1342090:
       case 1362109:
       case 1372084:
       case 1372195:
       case 1382104:
       case 1382231:
       case 1402095:
       case 1402220:
       case 1412065:
       case 1412152:
       case 1422066:
       case 1422158:
       case 1432086:
       case 1432187:
       case 1442116:
       case 1442242:
       case 1452111:
       case 1452226:
       case 1462099:
       case 1462213:
       case 1472235:
       case 1482084:
       case 1482189:
       case 1492085:
       case 1492199:
       case 1522018:
       case 1522113:
       case 1532018:
       case 1532118:
       case 2340000:
       case 2431738:
       case 2431739:
       case 2431740:
       case 2431741:
       case 2431742:
       case 2431743:
       case 2614000:
       case 2614001:
       case 2614002:
       case 2614003:
       case 2614004:
       case 2614005:
       case 2614006:
       case 2614007:
       case 2614008:
       case 2614009:
       case 2614010:
       case 2614011:
       case 2614012:
       case 2614013:
       case 2614014:
       case 2614015:
       case 2614016:
       case 2614017:
       case 5062000:
       case 5062002:
       case 5062500:
/*  981 */         return true;
     }
/*  983 */     return false;
   }














   public static int getAdditionalSuccess(int itemId) {
/* 1000 */     if (itemId == 2048200)
/* 1001 */       return 5; 
/* 1002 */     if (itemId == 2048201 || itemId == 2048202)
/* 1003 */       return 10; 
/* 1004 */     if (itemId == 2048203)
/* 1005 */       return 100; 
/* 1006 */     if (itemId == 2048204)
/* 1007 */       return 20; 
/* 1008 */     if (itemId == 2048300 || itemId == 2048303)
/* 1009 */       return 60; 
/* 1010 */     if (itemId == 2048301 || itemId == 2048302)
/* 1011 */       return 80; 
/* 1012 */     if (itemId == 2048304) {
/* 1013 */       return 100;
     }
/* 1015 */     return 0;
   }




   public static int getNebuliteGrade(int id) {
/* 1022 */     if (id / 10000 != 306) {
/* 1023 */       return -1;
     }
/* 1025 */     if (id >= 3060000 && id < 3061000)
/* 1026 */       return 0; 
/* 1027 */     if (id >= 3061000 && id < 3062000)
/* 1028 */       return 1; 
/* 1029 */     if (id >= 3062000 && id < 3063000)
/* 1030 */       return 2; 
/* 1031 */     if (id >= 3063000 && id < 3064000) {
/* 1032 */       return 3;
     }
/* 1034 */     return 4;
   }

   public static boolean is机甲装备(int itemId) {
/* 1038 */     return (itemId >= 1610000 && itemId < 1660000);
   }

   public static boolean is龙龙装备(int itemId) {
/* 1042 */     return (itemId >= 1940000 && itemId < 1980000);
   }










   public static boolean canScroll(int itemId) {
/* 1055 */     return ((itemId / 100000 != 19 && itemId / 100000 != 16) || (itemId / 1000 == 1672 && itemId != 1672030 && itemId != 1672031 && itemId != 1672032));
   }




   public static boolean canHammer(int itemId) {
/* 1062 */     switch (itemId) {
       case 1122000:
       case 1122076:
/* 1065 */         return false;
     }
/* 1067 */     return canScroll(itemId);
   }

   public static int getLowestPrice(int itemId) {
/* 1071 */     switch (itemId) {
       case 2340000:
       case 2530000:
       case 2531000:
/* 1075 */         return 50000000;
     }
/* 1077 */     return -1;
   }

   public static int getModifier(int itemId, int up) {
/* 1081 */     if (up <= 0) {
/* 1082 */       return 0;
     }
/* 1084 */     switch (itemId) {
       case 2022459:
       case 2860179:
       case 2860193:
       case 2860207:
/* 1089 */         return 130;
       case 2022460:
       case 2022462:
       case 2022730:
/* 1093 */         return 150;
       case 2860181:
       case 2860195:
       case 2860209:
/* 1097 */         return 200;
     }
/* 1099 */     if (itemId / 10000 == 286) {
/* 1100 */       return 150;
     }
/* 1102 */     return 200;
   }

   public static short getSlotMax(int itemId) {
/* 1106 */     switch (itemId) {
       case 4030003:
       case 4030004:
       case 4030005:
/* 1110 */         return 1;
       case 3993000:
       case 3993002:
       case 3993003:
       case 4001168:
       case 4031306:
       case 4031307:
/* 1117 */         return 100;
       case 5220010:
       case 5220013:
/* 1120 */         return 1000;
       case 5220020:
/* 1122 */         return 2000;
     }
/* 1124 */     return 0;
   }

   public static boolean isDropRestricted(int itemId) {
/* 1128 */     return (itemId == 3012000 || itemId == 4030004 || itemId == 1052098 || itemId == 1052202);
   }




   public static boolean isPickupRestricted(int itemId) {
/* 1135 */     return (itemId == 4030003 || itemId == 4030004);
   }


   public static short getStat(int itemId, int def) {
/* 1140 */     switch (itemId) {
       case 1002419:
/* 1142 */         return 5;
       case 1002959:
/* 1144 */         return 25;
       case 1142002:
/* 1146 */         return 10;
       case 1122121:
/* 1148 */         return 7;
     }
/* 1150 */     return (short)def;
   }

   public static short getHpMp(int itemId, int def) {
/* 1154 */     switch (itemId) {
       case 1122121:
/* 1156 */         return 500;
       case 1002959:
       case 1142002:
/* 1159 */         return 1000;
     }
/* 1161 */     return (short)def;
   }

   public static short getATK(int itemId, int def) {
/* 1165 */     switch (itemId) {
       case 1122121:
/* 1167 */         return 3;
       case 1002959:
/* 1169 */         return 4;
       case 1142002:
/* 1171 */         return 9;
     }
/* 1173 */     return (short)def;
   }

   public static short getDEF(int itemId, int def) {
/* 1177 */     switch (itemId) {
       case 1122121:
/* 1179 */         return 250;
       case 1002959:
/* 1181 */         return 500;
     }
/* 1183 */     return (short)def;
   }

   public static int getRewardPot(int itemid, int closeness) {
/* 1187 */     switch (itemid) {
       case 2440000:
/* 1189 */         switch (closeness / 10) {
           case 0:
           case 1:
           case 2:
/* 1193 */             return 2028041 + closeness / 10;
           case 3:
           case 4:
           case 5:
/* 1197 */             return 2028046 + closeness / 10;
           case 6:
           case 7:
           case 8:
/* 1201 */             return 2028049 + closeness / 10;
         }
/* 1203 */         return 2028057;
       case 2440001:
/* 1205 */         switch (closeness / 10) {
           case 0:
           case 1:
           case 2:
/* 1209 */             return 2028044 + closeness / 10;
           case 3:
           case 4:
           case 5:
/* 1213 */             return 2028049 + closeness / 10;
           case 6:
           case 7:
           case 8:
/* 1217 */             return 2028052 + closeness / 10;
         }
/* 1219 */         return 2028060;
       case 2440002:
/* 1221 */         return 2028069;
       case 2440003:
/* 1223 */         return 2430278;
       case 2440004:
/* 1225 */         return 2430381;
       case 2440005:
/* 1227 */         return 2430393;
     }
/* 1229 */     return 0;
   }




   public static boolean isLogItem(int itemId) {
/* 1236 */     switch (itemId) {
       case 2040006:
       case 2040007:
       case 2040303:
       case 2040403:
       case 2040506:
       case 2040507:
       case 2040603:
       case 2040709:
       case 2040710:
       case 2040711:
       case 2040806:
       case 2040903:
       case 2041024:
       case 2041025:
       case 2043003:
       case 2043103:
       case 2043203:
       case 2043303:
       case 2043703:
       case 2043803:
       case 2044003:
       case 2044019:
       case 2044103:
       case 2044203:
       case 2044303:
       case 2044403:
       case 2044503:
       case 2044603:
       case 2044703:
       case 2044815:
       case 2044908:
       case 2049000:
       case 2049001:
       case 2049002:
       case 2340000:
       case 4000463:
/* 1273 */         return true;
     }
/* 1275 */     return false;
   }

   public static int[] getInnerSkillbyRank(int rank) {
/* 1279 */     if (rank == 0)
/* 1280 */       return rankC; 
/* 1281 */     if (rank == 1)
/* 1282 */       return rankB; 
/* 1283 */     if (rank == 2)
/* 1284 */       return rankA; 
/* 1285 */     if (rank == 3) {
/* 1286 */       return rankS;
     }
/* 1288 */     return null;
   }


   public static boolean isTablet(int itemId) {
/* 1293 */     return (itemId / 1000 == 2047);
   }

   public static boolean isGeneralScroll(int itemId) {
/* 1297 */     return (itemId / 1000 == 2046);
   }

   public static int getSuccessTablet(int scrollId, int level) {
/* 1301 */     if (scrollId % 1000 / 100 == 2) {
/* 1302 */       switch (level) {
         case 0:
/* 1304 */           return 70;
         case 1:
/* 1306 */           return 55;
         case 2:
/* 1308 */           return 43;
         case 3:
/* 1310 */           return 33;
         case 4:
/* 1312 */           return 26;
         case 5:
/* 1314 */           return 20;
         case 6:
/* 1316 */           return 16;
         case 7:
/* 1318 */           return 12;
         case 8:
/* 1320 */           return 10;
       }
/* 1322 */       return 7;
     }
/* 1324 */     if (scrollId % 1000 / 100 == 3) {
/* 1325 */       switch (level) {
         case 0:
/* 1327 */           return 70;
         case 1:
/* 1329 */           return 35;
         case 2:
/* 1331 */           return 18;
         case 3:
/* 1333 */           return 12;
       }
/* 1335 */       return 7;
     }

/* 1338 */     switch (level) {
       case 0:
/* 1340 */         return 70;
       case 1:
/* 1342 */         return 50;
       case 2:
/* 1344 */         return 36;
       case 3:
/* 1346 */         return 26;
       case 4:
/* 1348 */         return 19;
       case 5:
/* 1350 */         return 14;
       case 6:
/* 1352 */         return 10;
     }
/* 1354 */     return 7;
   }



   public static int getCurseTablet(int scrollId, int level) {
/* 1360 */     if (scrollId % 1000 / 100 == 2) {
/* 1361 */       switch (level) {
         case 0:
/* 1363 */           return 10;
         case 1:
/* 1365 */           return 12;
         case 2:
/* 1367 */           return 16;
         case 3:
/* 1369 */           return 20;
         case 4:
/* 1371 */           return 26;
         case 5:
/* 1373 */           return 33;
         case 6:
/* 1375 */           return 43;
         case 7:
/* 1377 */           return 55;
         case 8:
/* 1379 */           return 70;
       }
/* 1381 */       return 100;
     }
/* 1383 */     if (scrollId % 1000 / 100 == 3) {
/* 1384 */       switch (level) {
         case 0:
/* 1386 */           return 12;
         case 1:
/* 1388 */           return 18;
         case 2:
/* 1390 */           return 35;
         case 3:
/* 1392 */           return 70;
       }
/* 1394 */       return 100;
     }

/* 1397 */     switch (level) {
       case 0:
/* 1399 */         return 10;
       case 1:
/* 1401 */         return 14;
       case 2:
/* 1403 */         return 19;
       case 3:
/* 1405 */         return 26;
       case 4:
/* 1407 */         return 36;
       case 5:
/* 1409 */         return 50;
       case 6:
/* 1411 */         return 70;
     }
/* 1413 */     return 100;
   }



   public static boolean isAccessory(int itemId) {
/* 1419 */     return ((itemId >= 1010000 && itemId < 1040000) || (itemId >= 1122000 && itemId < 1153000) || (itemId >= 1670000 && itemId < 1680000));
   }

   public static boolean isRing(int itemId) {
/* 1423 */     return (itemId >= 1112000 && itemId < 1113000);
   }


   public static boolean isEffectRing(int itemid) {
/* 1428 */     return (is好友戒指(itemid) || is恋人戒指(itemid) || is结婚戒指(itemid));
   }

   public static boolean is结婚戒指(int itemId) {
/* 1432 */     switch (itemId) {
       case 1112300:
       case 1112301:
       case 1112302:
       case 1112303:
       case 1112304:
       case 1112305:
       case 1112306:
       case 1112307:
       case 1112308:
       case 1112309:
       case 1112310:
       case 1112311:
       case 1112312:
       case 1112315:
       case 1112316:
       case 1112317:
       case 1112318:
       case 1112319:
       case 1112320:
       case 1112804:
/* 1453 */         return true;
     }
/* 1455 */     return false;
   }

   public static boolean is好友戒指(int itemId) {
/* 1459 */     switch (itemId) {

       case 1049000:
       case 1112800:
       case 1112801:
       case 1112802:
       case 1112810:
       case 1112811:
       case 1112812:
       case 1112817:
       case 1112822:
/* 1470 */         return true;
     }
/* 1472 */     return false;
   }

   public static boolean is恋人戒指(int itemId) {
/* 1476 */     switch (itemId) {

       case 1048000:
       case 1048001:
       case 1048002:
       case 1112001:
       case 1112002:
       case 1112003:
       case 1112005:
       case 1112006:
       case 1112007:
       case 1112012:
       case 1112013:
       case 1112014:
       case 1112015:
       case 1112816:
       case 1112820:
/* 1493 */         return true;
     }
/* 1495 */     return false;
   }




   public static boolean isSubWeapon(int itemId) {
/* 1502 */     return (itemId / 1000 == 1098 || itemId / 1000 == 1099 || itemId / 10000 == 135);
   }

   public static boolean is双刀主手(int itemId) {
/* 1506 */     return (itemId / 10000 == 133);
   }

   public static boolean is双刀副手(int itemId) {
/* 1510 */     return (itemId / 10000 == 134 && itemId != 1342069);
   }

   public static boolean is双弩箭矢(int itemId) {
/* 1514 */     return (itemId >= 1352000 && itemId <= 1352007);
   }

   public static boolean is幻影卡片(int itemId) {
/* 1518 */     return (itemId >= 1352100 && itemId <= 1352107);
   }

   public static boolean is龙传宝盒(int itemId) {
/* 1522 */     return (itemId >= 1352300 && itemId <= 1352304);
   }

   public static boolean is夜光宝珠(int itemId) {
/* 1526 */     return (itemId >= 1352400 && itemId <= 1352404);
   }

   public static boolean is狂龙副手(int itemId) {
/* 1530 */     return (itemId >= 1352500 && itemId <= 1352504);
   }

   public static boolean is萝莉副手(int itemId) {
/* 1534 */     return (itemId >= 1352600 && itemId <= 1352604);
   }

   public static boolean is特殊副手(int itemId) {
/* 1538 */     return is双弩箭矢(itemId);
   }

   public static boolean isTwoHanded(int itemId) {
/* 1542 */     return isTwoHanded(itemId, 0);
   }

   public static boolean isTwoHanded(int itemId, int job) {
/* 1546 */     switch (getWeaponType(itemId)) {
       case 短枪:
/* 1548 */         return (job < 570 || job > 572);
       case 双手剑:
/* 1550 */         return (job < 6100 || job > 6112);
       case 双手斧:
       case 指节:
       case 双手钝器:
       case 弓:
       case 拳套:
       case 弩:
       case 矛:
       case 枪:
       case 手持火炮:
       case 双弩枪:
       case 武士刀:
/* 1562 */         return true;
     }
/* 1564 */     return false;
   }


   public static boolean isSuperiorEqp(int itemid) {
/* 1569 */     return ((itemid >= 1122241 && itemid <= 1122245) || (itemid >= 1132164 && itemid <= 1132178) || (itemid >= 1102471 && itemid <= 1102485) || (itemid >= 1082543 && itemid <= 1082547) || (itemid >= 1072732 && itemid <= 1072747));
   }

   public static boolean is随机攻击卷轴(int itemid) {
/* 1573 */     return (itemid / 1000 == 2612 || itemid / 1000 == 2613 || itemid / 1000 == 2046 || itemid / 1000 == 2615 || itemid / 1000 == 2616);
   }

   public static boolean is武器攻击力卷轴(int itemid) {
/* 1577 */     return (itemid / 100 == 20478 || itemid / 100 == 20469 || itemid / 100 == 20479);
   }

   public static int getNeedHonor(List<Integer> lockLine, int needHonor, int rank) {
/* 1581 */     switch (rank) {
       case 1:
/* 1583 */         needHonor += 400;
         break;
       case 2:
/* 1586 */         needHonor += 5000;
         break;
       case 3:
/* 1589 */         needHonor += 10000;
         break;
     }


/* 1594 */     switch (lockLine.size()) {
       case 1:
/* 1596 */         needHonor += 3000;
         break;
       case 2:
/* 1599 */         needHonor += 8000;
         break;
     }
/* 1602 */     return needHonor;
   }





   public static boolean isSealedScroll(int itemid) {
/* 1610 */     return (itemid == 2610001);
   }







   public static String getEnchantingEquipType(int itemid) {
/* 1620 */     return isWeapon(itemid) ? "武器" : ((isCap(itemid) || isCape(itemid) || isCoat(itemid) || 
/* 1621 */       isPants(itemid) || isLongcoat(itemid) || isShoes(itemid) || isShoulders(itemid)) ? "防具" : (
/* 1622 */       isGlove(itemid) ? "手套" : "饰品"));
   }

   public static int getEnchantingScrollStyle(String style) {
/* 1626 */     switch (style.substring(0, 2)) {
       case "蓝色":
/* 1628 */         return 0;
       case "灰色":
/* 1630 */         return 1;
       case "棕色":
/* 1632 */         return 2;
       case "金色":
/* 1634 */         return 3;
     }
/* 1636 */     return 0;
   }


   public static boolean is灵魂结晶(int itemid) {
/* 1641 */     return (itemid / 1000 == 2591);
   }




   public static boolean isSetupExpRate(int itemid) {
/* 1648 */     return (itemid / 10000 == 302);
   }


   public static long getCubeNeedMeso(Equip equip) {
/* 1653 */     MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
/* 1654 */     int reqLevel = ii.getReqLevel(equip.getItemId());
/* 1655 */     int n3 = 0;
/* 1656 */     if (reqLevel >= 120) {
/* 1657 */       n3 = 20;
/* 1658 */     } else if (reqLevel >= 70) {
/* 1659 */       n3 = 5;
/* 1660 */     } else if (reqLevel >= 30) {
/* 1661 */       n3 = 1;
     }
/* 1663 */     double d2 = reqLevel;
/* 1664 */     int n4 = 2;
/* 1665 */     double d3 = 1.0D;
     while (true) {
/* 1667 */       if ((n4 & 0x1) != 0) {
/* 1668 */         d3 *= d2;
       }
/* 1670 */       if ((n4 >>= 1) == 0)
/* 1671 */         break;  d2 *= d2;
     }
/* 1673 */     int n5 = (int)Math.ceil(d3);
/* 1674 */     return (((n3 * n5 <= 0) ? 1 : 0) - 1 & n3 * n5);
   }

   public static boolean isZeroWeapon(int weapon) {
/* 1678 */     return ((weapon >= 1562000 && weapon <= 1562007) || (weapon >= 1572000 && weapon <= 1572007));
   }

   public static class PotentialConstants
   {
     public static int getDefaultPotentialFlag(int itemid) {
/* 1684 */       int flag = PotentialFlag.B级.getValue() | PotentialFlag.A级.getValue() | PotentialFlag.S级.getValue() | PotentialFlag.SS级.getValue();
/* 1685 */       switch (itemid) {
         case 2711000:
         case 2711001:
         case 2711009:
/* 1689 */           flag -= PotentialFlag.S级.getValue();

         case 2710000:
/* 1692 */           flag = flag - PotentialFlag.SS级.getValue() | PotentialFlag.等级下降.getValue();
           break;

         case 2710001:
/* 1696 */           flag -= PotentialFlag.SS级.getValue();

         case 3994895:
/* 1699 */           flag |= PotentialFlag.洗后无法交易.getValue();
           break;

         case 2711005:
         case 2711007:
         case 5062000:
/* 1705 */           flag -= PotentialFlag.SS级.getValue();
           break;

         case 5062001:
/* 1709 */           flag = flag - PotentialFlag.SS级.getValue() | PotentialFlag.调整潜能条数.getValue();
           break;

         case 5062004:
/* 1713 */           flag = flag - PotentialFlag.SS级.getValue() | PotentialFlag.去掉无用潜能.getValue();
           break;

         case 5062013:
/* 1717 */           flag |= PotentialFlag.去掉无用潜能.getValue();

         case 5062005:
         case 5062006:
         case 5062021:
/* 1722 */           flag |= PotentialFlag.对等.getValue();
           break;

         case 5062008:
         case 5062019:
/* 1727 */           flag |= PotentialFlag.前两条相同.getValue();
           break;

         case 10000:
         case 5062500:
         case 5062501:
         case 5062502:
         case 5062503:
/* 1735 */           flag |= PotentialFlag.附加潜能.getValue();
           break;
       }

/* 1739 */       if (MapleItemInformationProvider.getInstance().isCash(itemid)) {
/* 1740 */         flag |= PotentialFlag.点券光环.getValue();
       }
/* 1742 */       return flag;
     }

     public static int getCubeRate(int itemid) {
/* 1746 */       switch (itemid) {
         case 5062000:
/* 1748 */           return 1;

         case 5062001:
/* 1751 */           return 2;

         case 5062002:
/* 1754 */           return 3;

         case 5062005:
/* 1757 */           return 4;

         case 5062006:
/* 1760 */           return 4;

         case 5062009:
/* 1763 */           return 4;

         case 5062010:
/* 1766 */           return 7;

         case 5062090:
/* 1769 */           return 3;

         case 5062100:
/* 1772 */           return 2;

         case 5062102:
/* 1775 */           return 2;

         case 5062103:
         case 5062503:
/* 1779 */           return 2;

         case 5062500:
/* 1782 */           return 4;

         case 5062501:
/* 1785 */           return 4;

         case 5062024:
/* 1788 */           return 3;

         case 5062502:
/* 1791 */           return 5;
       }

/* 1794 */       return 1;
     }



     public static int getCubeDebris(int itemid) {
/* 1800 */       switch (itemid) {
         case 5062000:
/* 1802 */           return 2430112;

         case 5062001:
/* 1805 */           return 2430112;

         case 5062002:
         case 5062022:
/* 1809 */           return 2430481;

         case 5062005:
/* 1812 */           return 2430759;

         case 5062006:
/* 1815 */           return 2431427;

         case 5062009:
/* 1818 */           return 2431893;

         case 5062010:
/* 1821 */           return 2431894;

         case 5062090:
/* 1824 */           return 2431445;

         case 5062100:
/* 1827 */           return 2430112;

         case 5062102:
/* 1830 */           return 2430112;

         case 5062103:
/* 1833 */           return 2430112;

         case 5062500:
/* 1836 */           return 2430915;

         case 5062501:
/* 1839 */           return 2430915;

         case 5062024:
/* 1842 */           return 2434125;

         case 5062502:
/* 1845 */           return 2433547;

         case 5062503:
/* 1848 */           return 2434782;
       }

/* 1851 */       return 0;
     }




     public static boolean canUse(Equip equip, int itemid) {
/* 1858 */       switch (itemid) {
         case 2711002:
/* 1860 */           return ItemConstants.isWeapon(equip.getItemId());

         case 2711007:
/* 1863 */           return (ItemConstants.get11thItem().contains(Integer.valueOf(equip.getItemId())) && ItemConstants.isWeapon(equip.getItemId()));

         case 5062100:
/* 1866 */           return ItemConstants.getPlatinumItem().contains(Integer.valueOf(equip.getItemId()));

         case 5062102:
/* 1869 */           return (ItemConstants.getNewGoldenMapleItem().contains(Integer.valueOf(equip.getItemId())) && ItemConstants.isWeapon(equip.getItemId()));

         case 5062103:
/* 1872 */           return ItemConstants.getZijinItem().contains(Integer.valueOf(equip.getItemId()));

         case 2711000:
         case 2711001:
/* 1876 */           return (equip.getState(false) < 18);

         case 2710000:
         case 2711005:
         case 5062000:
         case 5062004:
/* 1882 */           return (equip.getState(false) < 20);
       }

/* 1885 */       return true;
     }



     public static boolean checkProperties(StructItemOption itemOption) {
/* 1891 */       boolean b = false;
/* 1892 */       for (String s : itemOption.data.keySet()) {
/* 1893 */         if (itemOption.get(s) > 0) {
/* 1894 */           switch (s) {
             case "incSTRr":
             case "incDEXr":
             case "incINTr":
             case "incLUKr":
             case "incPADr":
             case "incMADr":
             case "incMHPr":
             case "incMMPr":
             case "incDAMr":
             case "incTerR":
             case "incAsrR":
             case "incMaxDamage":
             case "level":
             case "prop":
             case "time":
             case "ignoreTargetDEF":
             case "ignoreDAM":
             case "incAllskill":
             case "ignoreDAMr":
             case "RecoveryUP":
             case "incCriticaldamageMin":
             case "incCriticaldamageMax":
             case "DAMreflect":
             case "mpconReduce":
             case "reduceCooltime":
             case "incMesoProp":
             case "incRewardProp":
             case "boss":
             case "attackType":
               continue;
           }

/* 1927 */           b = true;
         }
       }



/* 1933 */       return b;
     }

     public enum PotentialFlag {
/* 1937 */       B级(1),
/* 1938 */       A级(2),
/* 1939 */       S级(4),
/* 1940 */       SS级(8),
/* 1941 */       等级下降(16),
/* 1942 */       调整潜能条数(32),
/* 1943 */       洗后无法交易(64),
/* 1944 */       对等(128),
/* 1945 */       去掉无用潜能(256),
/* 1946 */       前两条相同(512),
/* 1947 */       附加潜能(1024),
/* 1948 */       点券光环(2048);

       private final int value;

       PotentialFlag(int value) {
/* 1953 */         this.value = value;
       }

       public final int getValue() {
/* 1957 */         return this.value;
       }

       public final boolean check(int n) {
/* 1961 */         return ((n & this.value) == this.value);
       }
     }
   }

   public static class TapJoyReward {
/* 1967 */     private static final Map<Integer, Pair<Integer, Integer>> stages = new TreeMap<>();
/* 1968 */     private static final Map<Integer, List<Integer>> rewards = new HashMap<>();

     public static void init() {
/* 1971 */       if (!rewards.isEmpty()) {
/* 1972 */         rewards.clear();
       }
/* 1974 */       ArrayList<Integer> list = new ArrayList<>();
/* 1975 */       String[] split = CSInfoConfig.CASH_PBTAPREWARD1.split(",");
/* 1976 */       for (int length = split.length, i = 0; i < length; i++) {
/* 1977 */         list.add(Integer.valueOf(split[i]));
       }
/* 1979 */       rewards.put(Integer.valueOf(0), list);
/* 1980 */       ArrayList<Integer> list2 = new ArrayList<>();
/* 1981 */       String[] split2 = CSInfoConfig.CASH_PBTAPREWARD2.split(",");
/* 1982 */       for (int length2 = split2.length, j = 0; j < length2; j++) {
/* 1983 */         list2.add(Integer.valueOf(split2[j]));
       }
/* 1985 */       rewards.put(Integer.valueOf(1), list2);
/* 1986 */       ArrayList<Integer> list3 = new ArrayList<>();
/* 1987 */       String[] split3 = CSInfoConfig.CASH_PBTAPREWARD3.split(",");
/* 1988 */       for (int length3 = split3.length, k = 0; k < length3; k++) {
/* 1989 */         list3.add(Integer.valueOf(split3[k]));
       }
/* 1991 */       rewards.put(Integer.valueOf(2), list3);
     }

     public static Map<Integer, Pair<Integer, Integer>> getStages() {
/* 1995 */       if (stages.isEmpty()) {
/* 1996 */         stages.put(Integer.valueOf(0), new Pair(Integer.valueOf(5224000), Integer.valueOf(50400358)));
/* 1997 */         stages.put(Integer.valueOf(1), new Pair(Integer.valueOf(5224001), Integer.valueOf(50400359)));
/* 1998 */         stages.put(Integer.valueOf(2), new Pair(Integer.valueOf(5224009), Integer.valueOf(50400454)));
/* 1999 */         stages.put(Integer.valueOf(3), new Pair(Integer.valueOf(5224010), Integer.valueOf(50400455)));
/* 2000 */         stages.put(Integer.valueOf(4), new Pair(Integer.valueOf(5224011), Integer.valueOf(50400456)));
/* 2001 */         stages.put(Integer.valueOf(5), new Pair(Integer.valueOf(0), Integer.valueOf(0)));
       }
/* 2003 */       return stages;
     }

     public static Integer getSN(int itemid) {
/* 2007 */       int intValue = -1;
/* 2008 */       for (Map.Entry<Integer, Pair<Integer, Integer>> entry : getStages().entrySet()) {
/* 2009 */         if (((Integer)((Pair)entry.getValue()).getLeft()).intValue() == itemid) {
/* 2010 */           intValue = ((Integer)entry.getKey()).intValue();
           break;
         }
       }
/* 2014 */       return Integer.valueOf(intValue);
     }

     public static List<Integer> getRewardList(int rank) {
/* 2018 */       return rewards.get(Integer.valueOf(rank));
     }

     public static Pair<Integer, Integer> getItemIdAndSN(int rank) {
/* 2022 */       return stages.get(Integer.valueOf(rank));
     }
   }

   public static class UpgradeItemEx {
     public static int getValue(int itemid) {
/* 2028 */       switch (itemid) {
         case 2048716:
         case 2048724:
/* 2031 */           return 10;

         case 2048717:
         case 2048721:
         case 2048723:
/* 2036 */           return 15;

         case 2048712:
/* 2039 */           return 5;

         case 2048700:
         case 2048709:
         case 2048727:
/* 2044 */           return 6;

         case 2048701:
         case 2048705:
         case 2048715:
         case 2048728:
/* 2050 */           return 6;

         case 2048702:
         case 2048706:
         case 2048729:
/* 2055 */           return 7;

         case 2048703:
         case 2048707:
         case 2048713:
         case 2048730:
/* 2061 */           return 7;

         case 2048704:
         case 2048708:
         case 2048731:
/* 2066 */           return 8;

         case 2048725:
         case 2048743:
/* 2070 */           return 8;
       }

/* 2073 */       return 8;
     }
   }



   public static int getArcUplevelNeedExp(int level, int type) {
/* 2080 */     return (level * level + level * 14) * (type / 2 + 1);
   }

   public static long getArcUplevelNeedMeso(int arcLevel, int arcType) {
/* 2084 */     return (20000000 + arcLevel * 1000000 * (arcType / 2 + 1));
   }
 }


/* Location:              C:\PGX\Server.jar!\constants\ItemConstants.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */